program ControlPlan2;

uses
  Forms,
  controls,
  SysUtils,
  uMain in 'uMain.pas' {MainForm},
  uDataModule in 'uDataModule.pas' {DataModule1: TDataModule},
  uListaClientes in 'uListaClientes.pas' {fListaClientes},
  utils in 'utils.pas',
  uCadastroGenerico in 'uCadastroGenerico.pas' {fCadastroGenerico},
  uListaDependentes in 'uListaDependentes.pas' {fListaDependentes},
  uListaDespesas in 'uListaDespesas.pas' {fListaDespesas},
  uRecebimentoParcelas in 'uRecebimentoParcelas.pas' {FRecebimentosParcelas},
  uListaPlanos in 'uListaPlanos.pas' {fListaPlanos},
  uListaContratos in 'uListaContratos.pas' {fListaContratos},
  uCadastroCliente in 'uCadastroCliente.pas' {fCadastroClientes},
  uCadastroDependente in 'uCadastroDependente.pas' {fCadastroDependente},
  uCadastroContrato in 'uCadastroContrato.pas' {fCadastroContrato},
  uCadastroUsuario in 'uCadastroUsuario.pas' {fCadastroUsuario},
  uListaUsuario in 'uListaUsuario.pas' {fListaUsuarios},
  uLogin in 'uLogin.pas' {fLogin},
  uRelatorioExtrasAtraso in 'uRelatorioExtrasAtraso.pas' {FRelatorioExtrasAtraso},
  uRelatorioREcebimentosDia in 'uRelatorioREcebimentosDia.pas' {fRecebimentosDia},
  uReportDatamodule in 'uReportDatamodule.pas' {dmreport: TDataModule},
  uCadastroPlanos in 'uCadastroPlanos.pas' {fCadastroPlanos},
  uListaMateriais in 'uListaMateriais.pas' {fListaMateriais},
  uListaServicos in 'uListaServicos.pas' {fListaServicos},
  uListaConveniados in 'uListaConveniados.pas' {fListaConveniados},
  uCadastroEmprestimo in 'uCadastroEmprestimo.pas' {fCadastroEmprestimo},
  uCadastroFalecimento in 'uCadastroFalecimento.pas' {fCadastroFalecimento},
  URelRecebimentosPeriodo in 'URelRecebimentosPeriodo.pas' {fRecebimentosPeriodo},
  uConfServer in 'uConfServer.pas' {fConfigServer},
  uAuditoria in 'uAuditoria.pas' {fAuditoria},
  usplash in 'usplash.pas' {fSplash},
  uRelatorioClientes in 'uRelatorioClientes.pas' {FRelatorioClientes},
  uRelatorioPrevisaoRecebimentos in 'uRelatorioPrevisaoRecebimentos.pas' {FRelatorioPrevisaoRecebimentos},
  uRelatorioRecebimentosPeriodo in 'uRelatorioRecebimentosPeriodo.pas' {FRelatorioRecebimentosPeriodo},
  uRelatorioParcelasAtraso in 'uRelatorioParcelasAtraso.pas' {FRelatorioParcelasAtraso},
  uImpressaoContrato in 'uImpressaoContrato.pas' {fImpressaoContrato},
  uListaParcelas in 'uListaParcelas.pas' {fListaParcelasContrato},
  uEvolucaoRecebimentos in 'uEvolucaoRecebimentos.pas' {fEvolucaoRecebimentos},
  uEvoluacaoParcelasAtrasadas in 'uEvoluacaoParcelasAtrasadas.pas' {fParcelasAtrasadasMensal};

//  uListaDespesasExtras in 'uListaDespesasExtras.pas' {fListaDespesas};

{$R *.res}
begin
  Application.Initialize;
  try
    Application.MainFormOnTaskbar := True;
    Application.Title := 'ControlPlan 2.0';

    fSplash := TfSplash.Create(Application);
    fSplash.Show;
    Application.ProcessMessages;
    Screen.Cursor := crHourGlass;
    sleep(2500);
    Application.ProcessMessages;
    Screen.Cursor := crDefault;


    DataModule1:= TDataModule1.Create(Application);
    fLogin := TfLogin.Create(Application);
    fLogin.ShowModal;
    if fLogin.LoginOk then
    begin
      fLogin.Close;
      fLogin.Free;
      fSplash.Free;
      DataModule1.Opendatasets;
      Application.CreateForm(TMainForm, MainForm);
  Application.CreateForm(TfImpressaoContrato, fImpressaoContrato);
  Application.CreateForm(TfListaParcelasContrato, fListaParcelasContrato);
  Application.CreateForm(TfEvolucaoRecebimentos, fEvolucaoRecebimentos);
  Application.CreateForm(TfParcelasAtrasadasMensal, fParcelasAtrasadasMensal);
  //Application.CreateForm(TfListaDespesas, fListaDespesas);
  MainForm.ShowModal;
    end
    else
    begin
      DataModule1.Free;
      fLogin.Close;
      fLogin.Free;
      Application.Terminate;
      Halt;
    end;

  finally
    MainForm.Free;
    DataModule1.Free;
  end;
end.
